package com.zingrow.web.report.mapper;

import java.util.List;
import java.util.Map;

import com.zingrow.web.report.response.CountData;
import com.zingrow.web.report.response.RankData;

public interface DimensionReckonMapper {
    /**
     * 从渠道维度查询每日转载和原创数
     * 
     * @param map
     *            查询参数<br>
     *            ids：根据算出来的ID进行查询<br>
     *            num：使用CountNum枚举，表示查询转载数/原创数/发布数/原创_转载数<br>
     *            types：使用Channel枚举，限制查询的渠道类型<br>
     *            group：0-统计时间段内总数,1-根据日期分组，分别统计每天的数量
     * @return
     */
    List<CountData> reckonChannelNum(Map<String, Object> map);

    /**
     * 从方案维度统计数量信息
     * 
     * @param map
     *            查询参数<br>
     *            ids：根据算出来的ID进行查询<br>
     *            num：使用CountNum枚举，表示查询转载数/原创数/发布数/原创_转载数
     */
    List<CountData> reckonPlanCountNum(Map<String, Object> map);

    /**
     * 从站点维度查询总数
     * 
     * @param map
     *            查询参数<br>
     *            ids：根据算出来的ID进行查询<br>
     *            num：使用CountNum枚举，表示查询转载数/原创数/发布数/原创_转载数
     */
    List<CountData> reckonDomainCountNum(Map<String, Object> map);

    /**
     * 从方案排行维度查询数据列表
     */
    List<RankData> reckonPlanRank(Map<String, Object> map);

    /**
     * 从新闻排行维度查询数据列表
     * 
     * @param map
     *            查询参数<br>
     *            ids：根据算出来的ID进行查询<br>
     *            order：排序方式：0-发布时间倒序，1-转载量倒序
     */
    List<RankData> reckonNewsRank(Map<String, Object> map);

    /**
     * 从微信排行维度查询数据列表
     */
    List<RankData> reckonWeixinRank(Map<String, Object> map);

    
    /**
     * 从微博排行维度查询数据列表
     */
    List<RankData> reckonWeiboRank(Map<String, Object> map);

    /**
     * 从论坛排行维度查询数据列表
     */
    List<RankData> reckonBbsRank(Map<String, Object> map);
}
